+2003-09-19 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
+ present on the US-International keyboard. For clarity, order
+ keysyms in case statement according to numeric value.
+
+ (gdk_keymap_translate_keyboard_state): Handle Caps Lock
+ correctly. (#120176, Ken Rastatter and Owen Taylor)
+
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
+2003-09-19 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
+ present on the US-International keyboard. For clarity, order
+ keysyms in case statement according to numeric value.
+
+ (gdk_keymap_translate_keyboard_state): Handle Caps Lock
+ correctly. (#120176, Ken Rastatter and Owen Taylor)
+
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
+2003-09-19 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
+ present on the US-International keyboard. For clarity, order
+ keysyms in case statement according to numeric value.
+
+ (gdk_keymap_translate_keyboard_state): Handle Caps Lock
+ correctly. (#120176, Ken Rastatter and Owen Taylor)
+
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
+2003-09-19 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
+ present on the US-International keyboard. For clarity, order
+ keysyms in case statement according to numeric value.
+
+ (gdk_keymap_translate_keyboard_state): Handle Caps Lock
+ correctly. (#120176, Ken Rastatter and Owen Taylor)
+
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
+2003-09-19 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkkeys-win32.c (update_keymap): Handle dead keysyms
+ present on the US-International keyboard. For clarity, order
+ keysyms in case statement according to numeric value.
+
+ (gdk_keymap_translate_keyboard_state): Handle Caps Lock
+ correctly. (#120176, Ken Rastatter and Owen Taylor)
+
2003-09-18 Matthias Clasen <maclas@gmx.de>
* gtk/gtkaction.c (gtk_action_finalize): Call g_closure_unref() to
/* Use dead keysyms instead of "undead" ones */
switch (gdk_unicode_to_keyval (wcs[0]))
{
- case GDK_grave:
- *ksymp = GDK_dead_grave; break;
- case GDK_acute:
+ case '"': /* 0x022 */
+ *ksymp = GDK_dead_diaeresis; break;
+ case '\'': /* 0x027 */
*ksymp = GDK_dead_acute; break;
- case GDK_asciicircum:
+ case GDK_asciicircum: /* 0x05e */
*ksymp = GDK_dead_circumflex; break;
- case GDK_asciitilde:
+ case GDK_grave: /* 0x060 */
+ *ksymp = GDK_dead_grave; break;
+ case GDK_asciitilde: /* 0x07e */
*ksymp = GDK_dead_tilde; break;
- case GDK_breve:
- *ksymp = GDK_dead_breve; break;
- case GDK_abovedot:
- *ksymp = GDK_dead_abovedot; break;
- case GDK_diaeresis:
+ case GDK_diaeresis: /* 0x0a8 */
*ksymp = GDK_dead_diaeresis; break;
- case GDK_doubleacute:
- *ksymp = GDK_dead_doubleacute; break;
- case GDK_caron:
- *ksymp = GDK_dead_caron; break;
- case GDK_cedilla:
+ case GDK_degree: /* 0x0b0 */
+ *ksymp = GDK_dead_abovering; break;
+ case GDK_acute: /* 0x0b4 */
+ *ksymp = GDK_dead_acute; break;
+ case GDK_periodcentered: /* 0x0b7 */
+ *ksymp = GDK_dead_abovedot; break;
+ case GDK_cedilla: /* 0x0b8 */
*ksymp = GDK_dead_cedilla; break;
- case GDK_ogonek:
+ case GDK_breve: /* 0x1a2 */
+ *ksymp = GDK_dead_breve; break;
+ case GDK_ogonek: /* 0x1b2 */
*ksymp = GDK_dead_ogonek; break;
- case GDK_degree:
- *ksymp = GDK_dead_abovering; break;
- case GDK_periodcentered:
+ case GDK_caron: /* 0x1b7 */
+ *ksymp = GDK_dead_caron; break;
+ case GDK_doubleacute: /* 0x1bd */
+ *ksymp = GDK_dead_doubleacute; break;
+ case GDK_abovedot: /* 0x1ff */
*ksymp = GDK_dead_abovedot; break;
- case GDK_Greek_accentdieresis:
+ case GDK_Greek_accentdieresis: /* 0x7ae */
*ksymp = GDK_Greek_accentdieresis; break;
default:
GDK_NOTE (EVENTS,
return FALSE;
if ((state & GDK_SHIFT_MASK) && (state & GDK_LOCK_MASK))
- shift_level = 0; /* shift disables shift lock */
- else if ((state & GDK_SHIFT_MASK) || (state & GDK_LOCK_MASK))
+ shift_level = 0; /* shift disables caps lock */
+ else if (state & GDK_SHIFT_MASK)
shift_level = 1;
else
shift_level = 0;
if (effective_group)
*effective_group = group;
+ if (!(state & GDK_SHIFT_MASK) && (state & GDK_LOCK_MASK))
+ {
+ guint upper = gdk_keyval_to_upper (tmp_keyval);
+ if (upper != tmp_keyval)
+ tmp_keyval = upper;
+ }
+
if (level)
*level = shift_level;